% begriff2.sty - a LaTeX2e package for typesetting begriffsschrift

% Copyright (C) 2003 by Josh Parsons <josh@coombs.anu.edu.au>
% 
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
% General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111,
% USA.

% Changes made in October 2004 by Richard Heck <rgheck@brown.edu>
% Purpose of changes: To make the format of the formulae closer to how
% they are set in Frege's published works.

% Changes by Marcus Rossberg <mr30@st-andrews.ac.uk> in February 2006:
% length of \BGcontent (made longer, closer to Frege's use)
% added \BGsqbracket
% added \BGnonot and \BGnoquant for formatting trick (see below)
% (a proper -- best automated -- solution for this formatting problem is desired,
% but this trick will have to do for now)
% changed: \mathfrak usage with \BGquant and \BGall for more flexibility

% Changes by Marcus Rossberg <mr30@st-andrews.ac.uk> in November 2006:
% added \BGdef
% added synonym \BGjudge for \BGassert

% Changes by J.J. Green <j.j.green@sheffield.ac.uk> in 01/2007
% \BGquant improved (symmetrical placement of letter, dish-shape, de-jagged)
% \BGbracket and \BGsqbracket improved (vertical alignment)

% Changes by Marcus Rossberg <mr30@st-andrews.ac.uk> in 03/2007:
% added \BGnotalone -- longer negation sign for stand-alone use
% added \BGdefalone -- with \BGcontent-length horizontal
% added \BGdefvar{<length>} -- (variable length of the horizontal)
% added \BGassertalone -- with \BGcontent-length horizontal
% added \BGassertvar{<length>} -- (variable length of the horizontal)
% added synonym \BGjudgealone for \BGassertalone
% added synonym \BGjudgevar for \BGassertvar
% introduced \BGlift (at 2pt) to lift from baseline
% adjusted \BGbeforelength (added .4 pt to previous value) for symmetry
%%%
%%% MR (08/2009) this seems to have created most of the problems that had to be
%%% fixed below.  Might be more elegant to balance symmetry in a different way, not 
%%% by adding .4 pt to \BGbeforelength and avoid awkward adjustments of (08/2009).
%%% TO DO:  tidy this up...

% Changes by Marcus Rossberg <mr30@st-andrews.ac.uk> in 07/2007:
% in \BGconditional: condensed hight between lines within formula and
%   increased space between bottom of formula and next line
%   (for this, also a change in \BGterm) 
% fixed vertical alignment of \BGbracket and \BGsqbracket (minus \BGlift)

% Changes by Agust\'in Rayo <arayo@mit.edu> and 
% Marcus Rossberg <marcus.rossberg@uconn.edu> in 11/2008:
% introduced \BGquantthickness to adjust thickness of quantifier-curvature,
% fixed alignment of horizontal line and  quantifier-curvature

% Changes by Marcus Rossberg <marcus.rossberg@uconn.edu> in 08/2009:
% 1) adjusted various length values in \BGquant \BGnoquant \BGnot \BGnonot
% in order to fix increase of line-length in subcomponents of conditionals 
% 2) adjusted depth of the conditional to fix problem of different hights between lines
% in embedded conditionals; also minor adjustment for fixing alignment between 
% horizonal and vertical lines in embedded conditionals
% 3) added \BGoddspace 

% Changes by Marcus Rossberg <marcus.rossberg@uconn.edu> in 06/2011:
% added \BGdnot:  double negation-stroke for standing alone use (cmp. Gg I, p. 69a)
% added \BGnodnot
% added \BGnonotalone
% added \BGtinyspace

% Changes by Marcus Rossberg <marcus.rossberg@uconn.edu> in 08/2011:
% added \BGtiniestspace

%%%%%%%
%       NOTE!!!   \BGoddspace \BGtinyspace \BGtiniestspace
%                        are absolute length, not dependent - fix it  (MR)
%                       (check for fixed lengths that should be dependent throughout)
%%%%%%%


%%% identification
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{begriff2}

%%% initial code

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% thickness of lines
\newlength{\BGthickness}
\setlength{\BGthickness}{0.4pt}

% thickness of lines for quantifier-curvature -- AR/MR added 11/2008
\newlength{\BGquantthickness}
\setlength{\BGquantthickness}{0.75\BGthickness}

% additional length after a quantifier, conditional, negation, or assertion
\newlength{\BGafterlen}
\setlength{\BGafterlen}{6pt}

% additional length before a quantifier, conditional, or negation
\newlength{\BGbeforelen}
\setlength{\BGbeforelen}{2.4pt}

% space inserted before a formula
\newlength{\BGspace}
\setlength{\BGspace}{3pt}

%Rossberg 03/07 -- lift from baseline
\newlength{\BGlift}
\setlength{\BGlift}{2pt}

% total width of diagram
% Heck (10/2004): Due to changes below, this is the total width of the DIAGRAM
% and does not include the width of the terminal formulae. In previous versions,
% it did include them.
\newlength{\BGlinewidth}
\setlength{\BGlinewidth}{\linewidth}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% options
%\DeclareOption{nothanks}{
%	\renewcommand{\mythanks}[1]{}
%	\let\@mythanks\relax
%}
\ProcessOptions

%%% package dependencies

%%% main code
\typeout{Begriffsschrift: June 2011}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% variable-sized parenthesis
% 
% new version: jjg (01/2007)
\newcommand{\BGbracket}[1]{%
\setbox0=\hbox{\ensuremath{#1}}%
\dimen0=0.5\dp0%
% Rossberg(07/2007): added line below
\addtolength{\dimen0}{-1\BGlift}%
\raisebox{-\dimen0}{\ensuremath{\left(\raisebox{\dimen0}{\box0}\right)}}%
}
%
% old version:
%\newcommand{\BGbracket}[1]{%
%\setbox0=\hbox{\ensuremath{#1}}%
%\dimen0=\dp0%
%\addtolength{\dimen0}{.5\baselineskip}%
%\left(\vbox to \dp0 {\vskip.5\baselineskip\box0\vss}\right)%
%}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% added: Rossberg (02/06)
% variable-sized square parenthesis
% 
% new version: jjg (01/2007)
\newcommand{\BGsqbracket}[1]{%
\setbox0=\hbox{\ensuremath{#1}}%
\dimen0=0.5\dp0%
% Rossberg(07/2007): added line below
\addtolength{\dimen0}{-1\BGlift}%
\raisebox{-\dimen0}{\ensuremath{\left[\raisebox{\dimen0}{\box0}\right]}}%
}
%
% old version:
%\newcommand{\BGsqbracket}[1]{%
%\setbox0=\hbox{\ensuremath{#1}}%
%\dimen0=\dp0%
%\addtolength{\dimen0}{.5\baselineskip}%
%\left[\vbox to \dp0 {\vskip.5\baselineskip\box0\vss}\right]%
%}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate a terminal node with fill-line to the left
\newcommand{\BGterm}[1]{\unskip%
\setbox0=\hbox{%
\setlength{\BGlinewidth}{0pt}%
%Rossberg (07/2007): removed the line below to even out hight
%\vrule height \baselineskip depth 0pt width 0pt% strut
\raisebox{\BGlift}{\vrule height \BGthickness width \BGafterlen depth 0pt}%
\ensuremath{\hskip\BGspace #1}%
}%
% Heck (10/2004): Removed the following line, so that the terminal formulae will
% be left-aligned, as in Frege's published works.
%\addtolength{\BGlinewidth}{-\wd0}%
\raisebox{\BGlift}{\vrule height \BGthickness width \BGlinewidth depth 0pt}%
\box0%
\setlength{\BGlinewidth}{0pt}%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% box up some maths and subtract its width from linewidth
% Heck (10/2004): Because of the changes above, this should no longer be needed.
% It remains for compatibility with previous versions.
\newcommand{\BGstem}[1]{\unskip%
\setbox0=\hbox{%
\setlength{\BGlinewidth}{0pt}%
\ensuremath{\hskip\BGspace #1}%
}%
\addtolength{\BGlinewidth}{-\wd0}%
\box0%
\hskip\BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate a conditional \BGconditional{antecedent}{consequent}
\newcommand{\BGconditional}[2]{\unskip%
\addtolength{\BGlinewidth}{-\BGbeforelen}%
\setbox0=\hbox{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
% Rossberg (07/2007): set height from \baselineskip to 0.5\baselineskip below
% to condense hight of conditionals
% also set depth to 0.5\baselineskip (from 3pt) to enlarge space between bottom 
% of formula and next line --- MR (17/8/2009): changed depth to  0.425\baselineskip
\raisebox{\BGlift}{\vrule height 0.5\baselineskip depth 0.425\baselineskip width 0pt% strut
\vrule height \BGthickness width \BGafterlen depth 0pt}%
\ensuremath{\hskip\BGspace #1}%
}%
\setbox1=\hbox{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
% Rossberg (07/2007): above changes made adjustment of depth below necessary
% put from 0.3\baselineskip to 0.43\baselineskip --- MR (17/8/2009): changed it to  0.425\baselineskip
\raisebox{\BGlift}{\vrule height 0pt depth 0.425\baselineskip width 0pt% strut -- depth of conditional here!
\vrule height \BGthickness width \BGafterlen depth 0pt}%
\ensuremath{\hskip\BGspace #2}%
}%
\dimen0=0pt%
\addtolength{\dimen0}{\dp1}%
\addtolength{\dimen0}{\ht0}%
\addtolength{\dimen0}{\lineskip}%
\hbox{%
\raisebox{\BGlift}{\vrule width \BGbeforelen height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth \dimen0
}%
\vtop{\box1\box0}%
}%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate an assertion sign
\newcommand{\BGassert}[0]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width \BGafterlen}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (03/07) added:
% generate standard stand-alone an assertion sign
\newcommand{\BGassertalone}[0]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width 12pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (03/07) added:
% generate an assertion sign of variable length
\newcommand{\BGassertvar}[1]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width #1}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (11/06) added:
% generate a definition sign
\newcommand{\BGdef}[0]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{ \vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height 0pt width \BGafterlen%
\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width \BGafterlen}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (03/07) added:
% generate standard stand-alone definition sign
\newcommand{\BGdefalone}[0]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{ \vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height 0pt width \BGafterlen%
\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width 12pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (03/07) added:
% generate a definition sign of variable length
\newcommand{\BGdefvar}[1]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\addtolength{\BGlinewidth}{-\BGthickness}%
\raisebox{\BGlift}{ \vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height 0pt width \BGafterlen%
\vrule width \BGthickness height 5pt depth 5pt%
\vrule depth 0pt height \BGthickness width #1}%
\hskip \BGspace%
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate a content stroke
\newcommand{\BGcontent}[0]{%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule depth 0pt height \BGthickness width 12pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate a negation
\newcommand{\BGnot}[0]{\unskip%
\addtolength{\BGlinewidth}{-\BGbeforelen}%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule width \BGbeforelen height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth 3pt%
\vrule depth 0pt height \BGthickness width \BGafterlen}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (02/06) added:
% generate a horizontal line of negation-length:
% to format Frege's negation symbol right-aligned include \BGnot in the scope
% of \BGterm - to compensate alignment include \BGnonot in that place in front
% of formulae that to not contain a negation right before the content-formula
\newcommand{\BGnonot}[0]{\unskip%
\addtolength{\BGlinewidth}{-\BGbeforelen}%
\addtolength{\BGlinewidth}{-\BGafterlen}%
% MR (17/8/2009): adjusted value below to -\BGafterlen (from -\BGbeforelen)
% to fix increasing length problem in subcomponents of conditionals
\raisebox{\BGlift}{\vrule width \BGafterlen height \BGthickness depth 0pt%
\vrule width \BGthickness height \BGthickness depth 0pt%
\vrule width \BGafterlen height \BGthickness depth 0pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (03/07):
% generate a stand-alone negation
\newcommand{\BGnotalone}[0]{\unskip%
%\addtolength{\BGlinewidth}{-\BGbeforelen}%
%\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule width 4.2pt height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth 3pt%
\vrule depth 0pt height \BGthickness width 3.8pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (08/06/11):
% generate a horizontal  of \BGnotalone-length
\newcommand{\BGnonotalone}[0]{\unskip%
%\addtolength{\BGlinewidth}{-\BGbeforelen}%
%\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule width 4.2pt height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth 0pt%
\vrule depth 0pt height \BGthickness width 3.8pt}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (08/06/11):
% generate a double-negation for stand-alone use (cmp. Gg I, p. 69a)
\newcommand{\BGdnot}[0]{\unskip%
%\addtolength{\BGlinewidth}{-\BGbeforelen}%
%\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule width 1.5\BGbeforelen height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth 3pt%
\vrule depth 0pt height \BGthickness width 1.5\BGafterlen%
\vrule width \BGthickness height \BGthickness depth 3pt%
\vrule depth 0pt height \BGthickness width 1.5\BGafterlen}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (08/06/11):
% generate a a horizontal  of \BGdnot-length
\newcommand{\BGnodnot}[0]{\unskip%
%\addtolength{\BGlinewidth}{-\BGbeforelen}%
%\addtolength{\BGlinewidth}{-\BGafterlen}%
\raisebox{\BGlift}{\vrule width 1.5\BGbeforelen height \BGthickness depth 0pt%
\kern-\BGthickness%
\vrule width \BGthickness height \BGthickness depth 0pt%
\vrule depth 0pt height \BGthickness width 1.5\BGafterlen%
\vrule width \BGthickness height \BGthickness depth 0pt%
\vrule depth 0pt height \BGthickness width 1.5\BGafterlen}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate a universal quantifier
\newcommand{\BGquant}[1]{\unskip%
\addtolength{\BGlinewidth}{-\BGbeforelen}%
% MR (17/8/2009): adjusted value below to -7.2 (from -8)
% to fix increasing length problem in subcomponents of conditionals
\addtolength{\BGlinewidth}{-7.2pt}%
\addtolength{\BGlinewidth}{-\BGafterlen}%
\hbox{%
\raisebox{\BGlift}{\vrule width \BGbeforelen height \BGthickness depth 0pt%
\setlength{\unitlength}{1pt}%
\kern-\BGthickness%
\begin{picture}(8,0)(0,0)%
\linethickness{\BGquantthickness}%
% AR/MR (11/2008) adjusted connection points between
% horizontal and concavity
\qbezier[100](0.3,0.2)(1,-2)(4,-2)%
\qbezier[100](4,-2)(7,-2)(7.7,0.2)%
% was:
%
% jjg (21/1/2007) a more dished 2-piece concavity using
% more points to avoid jaggedness
% \qbezier[100](0,0)(1,-2)(4,-2)%
%\qbezier[100](4,-2)(7,-2)(8,0)%
%
% previously:
% \qbezier(0,0)(4,-4)(8,0)%
\end{picture}%
\kern-8pt%
% jjg (21/1/2007) this needed for symmetry
\kern-\BGthickness
% Heck (10/2004): Added "\mathfrak", since variables are always fraktur over quantifiers
% Rossberg (02/06): reset for more flexibility outside typesetting Frege's own writings
% but instead added it below in the shortcut \BGall
\vbox{\hbox to 8pt {\hskip1pt\hskip\BGthickness\hss$_{#1}$\hss}\vskip1pt}%
\vrule width \BGafterlen height \BGthickness depth 0pt}%
}%
\hskip\BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rossberg (02/06) added:
% generate a horizontal line of quantifier-length
\newcommand{\BGnoquant}[0]{\unskip%
\addtolength{\BGlinewidth}{-\BGbeforelen}%
% MR (17/8/2009): adjusted value below to -7.2 (from -8)
% to fix increasing length problem in subcomponents of conditionals
\addtolength{\BGlinewidth}{-7.2pt}%
\addtolength{\BGlinewidth}{-\BGafterlen}%
% MR (17/8/2009): changed width from \BGbeforelen to \BGafterlen
% to fix increasing length problem in subcomponents of conditionals
\raisebox{\BGlift}{\vrule width \BGafterlen height \BGthickness depth 0pt%
\vrule depth 0pt height \BGthickness width 7.6pt%
\vrule width \BGafterlen height \BGthickness depth 0pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MR (17/8/2009) added:
% generate a horizontal line of the length of a quantifier minus the length of a negation/conditional
\newcommand{\BGoddspace}[0]{\unskip%
\addtolength{\BGlinewidth}{-7.2pt}%
\raisebox{\BGlift}{\vrule width 7.2pt height \BGthickness depth 0pt}%
\hskip \BGspace%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MR (03/08/2011) added:
% generate a horizontal line of the length of a quantifier minus twice the length of a negation/conditional
\newcommand{\BGtinyspace}[0]{\unskip%
\addtolength{\BGlinewidth}{-2.8pt}%
\raisebox{\BGlift}{\vrule width 2.8pt height \BGthickness depth 0pt}%
\hskip \BGspace%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MR (03/08/2011) added:
% generate a horizontal line of the length of thrice the length of a negation/conditional minus a quantifier
\newcommand{\BGtiniestspace}[0]{\unskip%
\addtolength{\BGlinewidth}{-1.6pt}%
\raisebox{\BGlift}{\vrule width 1.6pt height \BGthickness depth 0pt}%
\hskip \BGspace%
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Heck (10/2004): Convenience functions
% Heck: What I'd like to do is add another (optional) argument to 
% \BGif, so that if it is p, the premise is treated as \BGterm;
% if it is c, the conculsion is; if it is b, both are. But this will
% do for now.
\newcommand{\BGif}[2]{\BGconditional{#1}{#2}}
% Treat premise as a terminal node
\newcommand{\BGifp}[2]{\BGconditional{\BGterm{#1}}{#2}}
% Treat conclusion as a terminal node
\newcommand{\BGifc}[2]{\BGconditional{#1}{\BGterm{#2}}}
% Treat both as terminal nodes
\newcommand{\BGifb}[2]{\BGconditional{\BGterm{#1}}{\BGterm{#2}}}
\newcommand{\BGneg}[0]{\BGnot}
\newcommand{\BGall}[1]{\BGquant{\mathfrak{#1}}}
% Rossberg (02/06) convenience shortcut for described ``formatting trick"
\newcommand{\BGnoboth}[0]{\BGnonot\BGnoquant}
% Rossberg (11/06): \BGjudge as synonym for \BGassert
\newcommand{\BGjudge}{\BGassert}
% Rossberg (03/07):
\newcommand{\BGjudgealone}{\BGassertalone}
\newcommand{\BGjudgevar}[1]{\BGassertvar{#1}}

